<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="UTF-8">
    <title>Sucha's Homepage - Program Lab</title>
    <meta name="generator" content="MarkdownProjectCompositor.lua">
    <meta name="author" content="Sucha">
    <meta name="keywords" content="suchang, programming, Linux, Lua">
    <meta name="description" content="Sucha's homepage and blog">
    <link rel="shortcut icon" href="../images/ico.png">
    <link rel="stylesheet" type="text/css" href="../styles/site.css">
    <link rel="stylesheet" type="text/css" href="../styles/prism.min.css">
    <style id="site_theme"></style>
  </head>
  <body>
    <div id="body">
      <div id="text">
	<!-- Page published by cmark-gfm begins here --><h1>Sucha's Homepage ~ Program Lab</h1>
<p>学的是 CS，但数学渣，大学期间沉迷于 Linux、Emacs 这些玩意儿...<br>
好奇心重且编程想法多，各种都想了解一点，涉猎虽广但深度堪忧，无奈半桶水走江湖，&gt;_&lt;</p>
<h2>Tips &amp; Tricks</h2>
<ul>
<li><a href="EmacsProgrammingEnv.html">使用 Emacs 作为 IDE</a>: Emacs 的编程环境设置。</li>
<li><a href="TipsAndTricks.html">TipsAndTricks</a>: Emacs 编写 C/C++/ObjC 的一些快捷操作。</li>
</ul>
<h2>C &amp; C++</h2>
<p>当年课堂上没听懂老师教的 C &amp; C++，都是后来跳坑自学的。还是觉得 C++ 坑太多，自愚跳不完，索性放下，不学了～</p>
<ul>
<li><a href="../blog/2017-09.html#p0">m_net</a>: 跨平台的小型网络库，支持 Linux／MacOS／FreeBSD／Windows</li>
<li><a href="../blog/2014-12.html#p0">JPEG 解码器</a>: 当年面试 163 后被问到，那就填充到简历里面去吧。</li>
<li><a href="Tetris.html">俄罗斯方块游戏</a>： 纯属无聊时的作品。</li>
<li><a href="SmallUnixFilesystem.html">小型 Unix 磁盘文件系统</a>: 大三下的课程设计作业，纯模拟性质，当时选择这个题目是为了更好地理解 Unix 的文件系统，了解其对空闲磁盘和文件的管理。</li>
<li><a href="FiveInArow.html">五子棋游戏</a>: 在大一时编的，趁脸皮厚先放上来，算法绘图什么别想了，bug 又如何，当年老爸放水，我棋连挡 8 招，:-)</li>
</ul>
<h2>ObjC &amp; Swift</h2>
<p>ObjC 和 Swift 都是吃饭的家伙，虽然又渐渐用上了安卓手机，但系统已经习惯 MacOS 了，对苹果是又爱又恨。</p>
<ul>
<li><a href="../blog/2021-07.html#p0">PinStackView</a>: 基于 <a href="https://github.com/layoutBox/PinLayout">PinLayout</a> 的 StackView，特点是基于 Frame 计算，但是也保留了 UIStackView 的 distribution equal，已经用在正式环境上了。</li>
</ul>
<h2>Go</h2>
<p>Go 语言很早就火了，我没有赶上那个时候，话说 The Language 读了大概有 2、3 遍，直到遇到了合适的项目，才能说学会了一点。</p>
<ul>
<li><a href="../blog/2022-01.html#p0">MoocHelper</a>: <a href="../blog/2021-06.html#p0">MoonCake</a> 在 vscode 上的 LSP，修改自 <a href="https://github.com/Tencent/LuaHelper">LuaHelper</a>，有了它，对 MoocScript 的修修补补可太方便了。</li>
</ul>
<h2>Lua</h2>
<p>当初学 Lua 是因为要开发游戏，但后来发现这个脚本语言，跟 C 一样的命令式语法，性能还行，又不用考虑内存管理，方便得很。</p>
<ul>
<li><a href="../blog/2020-08.html#p0">Cincau</a>: 小型化的 MVC web 框架，支持 mnet 或者 nginx，已在公网支撑起了不知名站点。</li>
<li><a href="../blog/2021-06.html#p0">MoonCake</a>: 一个类似 Swift 的 Lua 方言（也可以叫 MoocScript），最终编译为 Lua，起因是我不大喜欢 Lua 充满 then、end 关键字的语法。</li>
<li><a href="../blog/2019-06.html#p1">MarkdownProjectCompositor</a>: 目前用来构建主页和博客，相比之前的 EmacsWiki 少了一些功能，但稳定性、可维护性高了太多。</li>
<li><a href="https://github.com/lalawue/app_scheduler">app_scheduler</a>: 一个监控进程存活、CPU、内存占用的管理程序，基于 'ps u -p PID1 -p PID2' 来实现。</li>
</ul>
<h2>Bash</h2>
<p>Are you bash shell today？</p>
<ul>
<li><a href="UploadScript.html">UploadScript</a>: 将新增、修改过的文件、目录通过 ftp 命令更新到服务端的脚本。自从托管到 GitHub 后，就不再用啦。</li>
<li><a href="RssGenerator.html">RssGenerator</a>: 根据 emacs-wiki-journal 生成的文本文件来产生 RSS 源的小脚本。早已废弃不用。</li>
<li><a href="ScriptStuff.html">Tiny script stuff</a>: 一些零零碎碎的小函数。</li>
</ul>
<h2>Elisp</h2>
<p>Lisp 的古老方言，用以扩展 Emacs 功能的强大工具。但多年来使用的机会不多，只会一丢丢的配置了。</p>
<ul>
<li><a href="SimpleJournal.html">Simple journal</a>: 简单的日记本函数，当年就是不喜欢使用 Emacs 自带的 todo 和 diary 来记，直到现在也一样...</li>
<li><a href="EmacsWikiJournal.html">Emacs Wiki Journal</a>: 基于 <a href="../scratch/EmacsWiki.html">EmacsWiki</a> 实现的 blog 系统，在别人基础上改的。目前已<a href="../blog/2019-06.html#p0">更换 Markdown Engine 为 cmark-gfm</a> 了。</li>
<li><a href="SQLiteMode.html">SQLite mode</a>: 是用来与 SQLite 数据库交互的小型前端，拥有命令回顾，语法高亮的简单功能。</li>
</ul>
<h2>Assembly</h2>
<p>大三才开始学汇编，而且是简单的 8086 系列，可以说是刚刚入门。虽说汇编足够精炼，但是用这个东西去编程实在是麻烦，太花时间，而且通用性肯定不好。</p>
<ul>
<li><a href="ShotGame.html">指法练习程序</a>: 没错，仿以前 DOS 下的 TT 打字游戏。字符在屏幕上一个一个地往下掉，若敲中相应的键，对应的字符就消失。可调字符颜色，下落速度以及响铃模式等等，非常简单的一个小游戏，但是编它却很花时间。</li>
</ul>
<!-- Page published by cmark-gfm ends here -->
      <div id="foot">
	2004-<script>var d = new
	Date();document.write(d.getFullYear())</script> &copy;
	Sucha. Powered by MarkdownProjectCompositor.
      </div><!-- foot -->
      </div><!-- text -->
      <div id="sidebar">
      </div><!-- sidebar -->
      <script src="../js/prism.min.js" async="async"></script>
      <script src="../js/site_sidebar.js"></script>
    </div><!-- body -->
  </body>
</html>